<?php
require_once "Util.php";

class OpenClient
{
    //appId
    private $appId='20220607983793437478223872';

    //请求路径
    private $publicUrl = 'https://open.api.101zj.com';

    //秘钥
    private $priKey ='';

    //初始参数
    public function __construct($appId, $publicUrl,$priKey) {
        $this->appId = $appId;
        $this->publicUrl = $publicUrl;
        $this->priKey=$priKey;
    }


    /**
     * 请求接口
     * @param $method string 接口名
     * @param $version string 版本
     * @param $bizContent string 业务参数
     * @return Array
     */
    public function execute($method,$version,$bizContent){
        //通用参数
        $systemParams = [
            'app_id'          => $this->appId,
            'method'          => $method,
            'format'=>'json',
            'charset' => 'utf-8',
            'sign_type'=>'RSA2',
            'timestamp' => date("Y-m-d H:i:s"),
            'version'      => $version,
        ];

        //业务参数
        $systemParams["biz_content"]=json_encode($bizContent, JSON_UNESCAPED_UNICODE);

        //工具类
        $Util =new Util();

        //待签名内容
        $waitSign=$Util->getSignContent($systemParams);

        //生成签名
        $sign=$Util->sign($waitSign,$this->priKey);

        //把签名加入通用参数里
        $systemParams['sign']=$sign;

        //拼接成get路径
        $url=$this->publicUrl.'/?'.http_build_query($systemParams);

        //返回接口json数据
        $sdkJson= $Util->httpGet($url);

        //将返回数据转成数组
        $sdkArray=json_decode($sdkJson,true);

        return $sdkArray;

    }
}
